#include <stdio.h>
#include "port.h"
#include "fpga-common.h"
#include "fpga-private.h"

int fpga_version(struct fpga_dev *dev, char *soft_ver, char *hw_ver)
{
    return fpga_if_version(dev, soft_ver, hw_ver);
}

int fpga_otdr_param(struct fpga_dev *dev, struct fpga_test_param *val)
{
    // return fpga_if_wrirte_regs(dev, 0, (unsigned int *)val, 0);
    return _fpga_if_wrirte_regs(dev, 0, (unsigned int *)val, 0);
}

int fpga_otdr_start(struct fpga_dev *dev)
{
    return fpga_if_start(dev);
}

int fpga_read_otdr_data(struct fpga_dev *dev, unsigned char *otdr_data, unsigned long len)
{
    unsigned long rlen;
    return fpga_if_read_frame(dev, otdr_data, len, &rlen);
}

int fpga_otdr_isfinish(struct fpga_dev *dev, bool *val)
{
    return fpga_if_isfinish(dev, val);
}

int fpga_otdr_stop(struct fpga_dev *dev)
{
    return fpga_if_stop(dev);
}

int fpga_info(struct fpga_dev *dev, struct fpga_info *out)
{
    // PRINT_FUTURE("作废%s() 用 fpga_version()代替\r\n", __FUNCTION__);
    return com_fpga_info(dev, out);
    // todo 添加到新interface
    // return fpga_if_info(dev, out);
}

#define OTDR_REDLASER (0x14)

// int fpga_red_laser(struct fpga_dev *dev, int val)
// {
// 	assert(dev != NULL);
// 	assert(dev->desc == dev_desc);
// 	// assert(val == OTDR_RL_OFF || val == OTDR_RL_ON || val == OTDR_RL_1HZ || val == OTDR_RL_10HZ );

// 	char tbuf[2];
// 	// char rbuf[MIN_RX_PACK_SIZE];
// 	char rbuf[12];

// 	tbuf[0] = val;
// 	tbuf[1] = 0;
// 	// mutex_unlock(&dev->mutex);
// 	_fpga_transfer(dev, OTDR_REDLASER,
// 	               tbuf, ARRAY_SIZE(tbuf),
// 	               rbuf, ARRAY_SIZE(rbuf) );
// 	// mutex_unlock(&dev->mutex);

// 	unsigned char ack = ACK_CODE(rbuf);

// 	switch (ack) {
// 	case 0xaa:
// 		this_dbg("%s() OK\r\n", __FUNCTION__);
// 		return 0;
// 	case 0x55:
// 		// ENV_PRINT_W("Error\r\n");
// 		return -1;
// 	default:
// 		// ENV_PRINT_E("unknow\r\n");
// 		return -1;
// 	}
// }
